package com.nodecollege.cloud.dao.mapper;

import com.nodecollege.cloud.common.model.po.UpmsMenu;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/**
 * 版权：节点学院
 * <p>
 * UpmsMenuMapper
 *
 * @author LC
 * @date 2020-01-03 23:47:10
 */
@Mapper
@Component
public interface UpmsMenuMapper {
    /**
     * 根据主键删除数据
     *
     * @param menuId Integer
     * @return int
     */
    int deleteByPrimaryKey(Long menuId);

    /**
     * 插入数据库记录（建议使用）
     *
     * @param record UpmsMenu
     * @return int
     */
    int insertSelective(UpmsMenu record);

    /**
     * 根据主键id查询
     *
     * @param menuId Integer
     * @return UpmsMenu
     */
    UpmsMenu selectByPrimaryKey(Long menuId);

    /**
     * 修改数据(推荐使用)
     *
     * @param record UpmsMenu
     * @return int
     */
    int updateByPrimaryKeySelective(UpmsMenu record);

    /**
     * 查询菜单列表
     * 运维管理，应用管理，查询预制菜单 入参 appId
     *
     * @param javabean2Map
     * @return
     */
    List<UpmsMenu> selectListByMap(Map<String, Object> javabean2Map);

    /**
     * 运维管理，租户管理，应用管理，查询租户开通的应用下开通的菜单信息 入参 appId menuSource tenantId
     * 系统管理，菜单管理，查询租户开通的系统菜单 和 自定义菜单 信息 入参 tenantId
     *
     * @param javabean2Map
     * @return
     */
    List<UpmsMenu> selectListByTenantId(Map<String, Object> javabean2Map);

    /**
     * 运维管理 应用预制角色管理 查询角色已绑定菜单信息 入参 appId roleId
     *
     * @param javabean2Map
     * @return
     */
    List<UpmsMenu> selectListByRoleId(Map<String, Object> javabean2Map);

    /**
     * 系统管理 角色管理 查询租户有权限的 已经绑定的菜单信息 入参 tenantId roleId
     *
     * @param javabean2Map
     * @return
     */
    List<UpmsMenu> selectListByTenantIdAndRoleId(Map<String, Object> javabean2Map);

    /**
     * 根据应用信息查询菜单列表
     *
     * @param javabean2Map
     * @return
     */
    List<UpmsMenu> selectListByApp(Map<String, Object> javabean2Map);

    /**
     * 运营后台 运营角色 根据角色id查询菜单
     *
     * @param javabean2Map
     * @return
     */
    List<UpmsMenu> selectListByOpRoleMenu(Map<String, Object> javabean2Map);
}